package per.dj.testpro.entity.protocol;

import lombok.Data;

@Data
public class Qy_09 implements IMessageBody{

    //用户id
    private Integer userId;

    //充电口号
    private Integer portNo;

    //计费模式
    private Integer chargeMode;

    //充电模式
    private Integer rechargeMode;

    //启充时间年月日时分秒（BCD[6]）
    private String startChargingTime;

    //启结束时间年月日时分秒（BCD[6]）
    private String endChargingTime;

    //充电电量
    private Integer electricCharge;

    //充电结束原因
    private Integer endReason;

    //交易流水号
    private byte transactionSerialNumber;

    public final byte[] WriteToBytes() {
        return null;
    }

    public final void ReadFromBytes(byte[] messageBodyBytes) {
        setUserId(Integer.valueOf(
                String.format("%02X", messageBodyBytes[0]) +
                String.format("%02X", messageBodyBytes[1]) +
                String.format("%02X", messageBodyBytes[2]) +
                String.format("%02X", messageBodyBytes[3]),16));
        setPortNo(Integer.valueOf(String.format("%02X", messageBodyBytes[4]),16));

        setChargeMode(Integer.valueOf(String.format("%02X", messageBodyBytes[5]),16));

        setRechargeMode(Integer.valueOf(String.format("%02X", messageBodyBytes[6]),16));

        setStartChargingTime(
                String.format("%02X", messageBodyBytes[7])+
                String.format("%02X", messageBodyBytes[8])+
                String.format("%02X", messageBodyBytes[9])+
                String.format("%02X", messageBodyBytes[10])+
                String.format("%02X", messageBodyBytes[11])+
                String.format("%02X", messageBodyBytes[12]));

        setEndChargingTime(
                String.format("%02X", messageBodyBytes[13])+
                String.format("%02X", messageBodyBytes[14])+
                String.format("%02X", messageBodyBytes[15])+
                String.format("%02X", messageBodyBytes[16])+
                String.format("%02X", messageBodyBytes[17])+
                String.format("%02X", messageBodyBytes[18]));

        setElectricCharge(Integer.valueOf(String.format("%02X", messageBodyBytes[19])+
                String.format("%02X", messageBodyBytes[20]),16));
        setEndReason(Integer.valueOf(String.format("%02X", messageBodyBytes[21]),16));
        setTransactionSerialNumber(messageBodyBytes[22]);
    }
}
